#include <iostream>
using namespace std;

// 加号运算符重载

class Person
{
friend ostream &operator<<(ostream &cout, Person &p);
public:
    // 1.成员函数重载 左移运算符
    // 不会利用成员函数重载左移运算符
    // void operator<< (Person &p)
    // {

    // }
    Person(int a, int b)
    {
        m_A = a;
        m_B = b;
    }
private:
    int m_A;
    int m_B;
};

// 2.只能全局函数重载左移运算符  
ostream &operator<<(ostream &cout, Person &p)
{
    cout << "m_A = " << p.m_A << " m_B = " << p.m_B <<endl;
    return cout;
} 


/* 左移运算符配合友元可以输出自定义的数据类型!!! */

// // 3.函数重载的版本
// Person operator+(Person &p1, int num)
// {

// }

void test01() 
{
    Person p(10, 10);
    cout << p << "hello world!" << endl;
} 



int main()
{
    test01();
    cout << "hello" << endl;
    return 0;
}